package com.rzhd.coursepatriarch.common.api.base;

import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;


/**
 * @author yql
 * Time: 2018/6/10.
 */
public class BaseHttpRequest<T> {

//    protected T getService(Class<T> cls) {
//        return RetrofitFactory.getInstance().getRetrofit().create(cls);
//    }

    /**
     * * Observable 用于订阅 Observer，不再支持背压（1.x 中可以使用背压策略）
     * <p>
     * Flowable 用于订阅 Subscriber ， 是支持背压（Backpressure）的。
     *
     * @param observable
     * @param subscriber
     * @param <T>
     */
    protected <T> void setSubscribe(Observable<T> observable, Observer<T> subscriber) {
        //代表io操作的线程, 通常用于网络,读写文件等io密集型的操作；
        observable.subscribeOn(Schedulers.io())
                //代表一个常规的新线程；
//                .subscribeOn(Schedulers.newThread())
                //代表Android的主线程
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(subscriber);
    }

}
